gh-104909: Implement conditional stack effects for macros#105748
Merged
gvanrossum merged 14 commits intopython:mainfrom Jun 14, 2023
Merged
gh-104909: Implement conditional stack effects for macros#105748gvanrossum merged 14 commits intopython:mainfrom
gvanrossum merged 14 commits intopython:mainfrom
Conversation
(In last op only; and no conditional input effects.)
This reverts commit eee069c.
iritkatriel
reviewed
Jun 13, 2023
| src: StackEffect | None, | ||
| *, | ||
| # Don't initialize from dst.cond; used for conditional *outputs*. | ||
| unconditional: bool = False, |
Member
There was a problem hiding this comment.
I'm finding it hard to track the directions of the different booleans here (unconditional is used for conditional outputs, and we don't initialise when it is True..).
Member
Author
There was a problem hiding this comment.
That's fair. I'm reverting the sense and renaming it to init_null, with a default of True (since that's what's needed in 5 out of 6 call sites).
Member
Author
|
Further testing shows the stack adjustment is not always correct. |
Also remove dummy diff argument to stack_adjust().
iritkatriel
reviewed
Jun 14, 2023
Member
Author
|
I'll undraft this once gh-105788 is merged (which is one of the earlier commits in this PR, but should be separated out). |
carljm
added a commit
to carljm/cpython
that referenced
this pull request
Jun 15, 2023
* main: (57 commits) pythongh-105831: Fix NEWS blurb from pythongh-105828 (python#105833) pythongh-105820: Fix tok_mode expression buffer in file & readline tokenizer (python#105828) pythongh-105751, test_ctypes: Remove disabled tests (python#105826) pythongh-105821: Use a raw f-string in test_httpservers.py (python#105822) pythongh-105751: Remove platform usage in test_ctypes (python#105819) pythongh-105751: Reenable disable test_ctypes tests (python#105818) pythongh-105751: Remove dead code in test_ctypes (python#105817) More reorganisation of the typing docs (python#105787) Improve docs for `typing.dataclass_transform` (python#105792) pythonGH-89812: Churn `pathlib.Path` test methods (python#105807) pythongh-105800: Issue SyntaxWarning in f-strings for invalid escape sequences (python#105801) pythongh-105751: Cleanup test_ctypes imports (python#105803) pythongh-105481: add HAS_JUMP flag to opcode metadata (python#105791) pythongh-105751: test_ctypes avoids the operator module (pythonGH-105797) pythongh-105751: test_ctypes: Remove @need_symbol decorator (pythonGH-105798) pythongh-104909: Implement conditional stack effects for macros (python#105748) pythongh-75905: Remove test_xmlrpc_net: skipped since 2017 (python#105796) pythongh-105481: Fix types and a bug for pseudos (python#105788) Update DSL docs for cases generator (python#105753) pythonGH-77273: Better bytecodes for f-strings (pythonGH-6132) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently only conditional output effects in the last sub-instruction are supported.
This is needed so we can make progress with splitting opcodes into uops with at most one cache entry or oparg -- some of the opcodes that need splitting have a conditional output effect.